package leetcode;

import java.util.Scanner;

/*给定一个非负整数 num，反复将各个位上的数字相加，直到结果为一位数。返回这个结果。*/
public class AddDigits {
    public static int addDigits(int num) {
        //循环方法，时间复杂度为O（log n）
//        while (num >= 10) {
//            int sum = 0;
//            while (num > 0) {
//                sum += num % 10;
//                num /= 10;
//            }
//            num = sum;
//        }
//        return num;
        //数学方法，时间复杂度为O（1）
        if (num == 0) {
            return 0;
        }
        return (num - 1 ) % 9 + 1;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个非负整数: ");
        int num = scanner.nextInt();
        int result = addDigits(num);
        System.out.println("数字根为: " + result);
        scanner.close();
    }
}
